1. Field of the Invention
This invention relates to three-dimensional (3D) graphics.
2. Background of the Related Art
Systems for the processing and display of 3D graphics typically include the display on a display device such as a video monitor of an imaginary or real place or object so as to provide a viewer with a sensation that the place or object exists in three dimensions. This typically is accomplished by providing visual cues, such as scaling down the size of distant objects or showing certain objects partially blocked by others, to impart to the viewer the impression of being in a 3D environment.
The computer-generation of 3D graphics on the screen of a video monitor is a well-known process. It consists of generating a set of three-dimensional (x, y, z) coordinates and performing a computer-generated series of transformations on the coordinates. The coordinates represent the objects in the scene. The transformations represent how the viewer sees the objects on the screen.
3D graphics programming is usually performed utilizing a software library that allows the programmer to program 3D graphics without concerning himself with various details of placing pixels on the screen. There is a great deal of similarity in the operation of the various software libraries, and anyone skilled in the art of using one library would have sufficient skill to use any of the other libraries. Thus, the choice of which library to use is an implementation detail.
The method of representing objects in 3D varies somewhat between software libraries, although the primary meaning of a set of coordinates is always the same. Various methods exist for defining and coloring surfaces of objects in a scene, but these methods are easily translated between libraries.
The transformations applied to coordinates by various 3D software libraries almost always have the same meaning. The transformations typically consist of a 4.times.4 matrix of numbers. It is well known in the art how to mathematically apply one or more transformation matrices to a set of coordinates to provide 3D effects on the computer screen. Transformation matrices are chosen so that there is an analogy between the mathematics of 3D rendering and our understanding of how pictures are taken by a photographic camera. The camera analogy is well understood by persons skilled in the art of computerized construction of 3D images, and its use greatly simplifies such discussions.
Immersive 3D environments are environments in which the viewer is given the impression of being brought into and navigating within the 3D environment. Many 3D graphics environments are not immersive. In non-immersive 3D environments, a viewer is merely provided with the sensation of being placed in front of the 3D scene and looks in. One recent use of immersive 3D graphics is virtual reality (VR), which attempts to give the viewer the impression of being inside a 3D representation of a real or imaginary place. The growing availability of VR graphics tools has resulted in the viewer being placed inside more or less abstract 3D scenes.
With VR, the viewer is immersed in a 3D scene, but the viewer still lacks important perceptual tools that are available to people in the real world. Specifically, typical views of VR provide little or no perceptual context. For example, a viewer of a VR system experiences "tunnel vision," in which the video monitor appears to be window placed several feet from the viewer through which he or she views objects and places on the other side of the window. This limits the viewer's field to a few degrees, eliminating most of the normal field of vision. This lack of perceptual context can limit effective use of the 3D presentation with effects varying from missed sightings to physical nausea on the part of the viewer.
Objects "behind" the viewer in 3D space must be treated as real even though they are not immediately visible, if an effective presentation and impression on the viewer is to be made. For example, if the viewer faces a tree, turns around, and walks backward, he will "hit" the tree in 3D space even though he cannot "see" it. Or, if the viewer walks past a tree too closely, he will hit the tree. In real life, one is aware of these objects through mechanisms such as peripheral vision and quick head turns.
Current VR technology has used various methods to attempt to provide visual context and to compensate for the lack of peripheral vision. These methods include wide angle views of the scene (like a fish-eye lens), an approximation of quick head turns (looking left and right), and overhead maps centered on the viewer. However, wide angle views distort the scene, and an approximation of quick head turns can be disorienting to the viewer. One technique used inside virtual vehicles (e.g., a tank) involves showing views out of front and side windows, without any attempt to connect or relate the views.